package com.chatgpt.base.utils;

import cn.hutool.crypto.digest.DigestUtil;

/**
 * 密码工具
 * @author yangjian
 */
public class PasswordUtil {

    /**
     * 生成一个密码
     * @param source 明文
     * @param salt 盐值
     * @param hashIterations hash 次数
     * @return 返回加密后的密码
     */
    public static String generatePassword(
            String source,
            String salt,
            Integer hashIterations) {

        String hashCode = DigestUtil.md5Hex(source+salt);
        if (hashIterations > 1) {
            for (int i = 0; i < hashIterations -1; i++) {
                hashCode = DigestUtil.md5Hex(hashCode);
            }
        }
        return hashCode;
    }

    public static String generatePassword(String source, String salt)
    {
        return DigestUtil.md5Hex(source+salt);
    }

    public static String generatePassword(String source)
    {
        return DigestUtil.md5Hex(source);
    }

    /**
     * 生成一个随机密码
     * @return 返回一个8位的随机密码明文
     */
    public static String generateRandomPassword()
    {
        return StringUtil.generateRandomString(8);
    }
}
